NIPS 2018(oral):通过端到端几何推理发现潜在3D关键点
编者按:关键点检测是许多计算机视觉任务的基础,如人脸识别、动作检测和自动驾驶等。而在这届NIPS上,来自Google AI的Supasorn Suwajanakorn等人带来了关于3D关键点检测的一种新方法:端到端几何推理。如果你没听说过这位一作的名字,没关系,你一定见过SIGGRAPH 2017上震惊世界的奥巴马造假视频,在那篇论文中,他也是一作.
摘要
本文提出KeypointNet,这是一个端到端的几何推理框架,可用于学习一组优化类3D关键点,并对它们进行检测。给定单个图像,KeypointNet能针对下游任务提取优化关键点集。我们通过提出一个可微的对象来展示这个关于3D姿态估计的框架,它的目的是恢复同一对象两个视图(2D)之间相对姿势的最佳关键点集,跨视角、跨类发现几何和语义一致的关键点。
重要的是,我们发现这种方法不需要任何基于ground-truth的关键点注释标记,在使用同一神经网络架构的情况下,它的效果优于完全监督基线。关于汽车、椅子和飞机等对象的3D关键点可视化,请看keypointnet.github.io。
简介
卷积神经网络(CNN)的研究已经证实,特征提取和分类管道的联合优化可以显著提升网络的对象识别性能。但话虽如此,目前一些解决几何视觉问题的方法,比如3D重建和shape alignment,它们都包含一个单独的关键点检测模块,在检测结果上再运用几何推理。在本文中,我们探讨了一个问题,即能否构建一个端到端的几何推理模型,把关键点直接联合优化为下游任务的一组潜在变量。
请设想这么一个例子:图像中汽车的3D姿势问题。按照常规做法,我们应该先检测所有关键点,然后在几何推理框架内应用这些点,恢复汽车的3D姿势或某个角度的视图。实现这一点的手段有很多,比如手动注释关键点,然后进行监督学习,也可以开发一组关键点检测器,尽管这容易出错。
但这种方法成本太高了,而且关键点的选择也缺乏一致性和明确性。为了获得更合理的关键点集,我们应该根据下游任务的需要,直接优化下游任务需要的关键点,从中获取独特性、易于检测和多样性等目标关键点属性。
KeypointNet的效果
首先,我们来看看KeypointNet的具体效果,下面是“飞机”的关键点预测情况,可以关注最后一行,尤其是最后两个。它们的机翼朝向难辨,因此关键点总是变动:
下面是“汽车”:
模型的整体预测效果很好,但请注意最后一行。其中第二辆车是黑色的,和背景颜色一致,这显然影响了KeypointNet的预测效果;而第三辆车之所以也会出现关键点变动,是因为它的车头和车尾太相似了,让模型感到迷惑。
上图是用不同数量的关键点[3,5,8,10,15,20]训练网络的结果,可以发现网络最先找到的关键点在飞机头部和机翼,随着数量增加,KeypointNet跟踪的部分更多(颜色是独立的,和预测结果无关)。
以上都是简单旋转的预测结果,那么如果目标对象是个可形变的物体,KeypointNet的稳健性会如何?
如这些动图所示,图中汽车会动态扭曲,但还能保持原有形状。对于这类目标,KeypointNet预测的关键点还是很稳定,效果也很好。
最后,也是最重要的,生成、检测关键点的作用是用于人脸识别、姿态估计等任务,那么KeypointNet在现实场景下是否也有上述效果:
上图右侧是成功预测关键点的示例,右侧是失败案例。总体而言,这个模型在大多数正常汽车图像上表现出色,但它很难处理自带广角畸变的图像、花纹复杂的汽车和包含镜面高光的图像。
端到端优化3D关键点
这一节是对KeypointNet的概述。
给定已知对象类别中的单个图像,这个模型可利用像素坐标和相关联的深度值,预测并生成3D关键点的有序列表。这些关键点需要在几何上和语义上保持一致,如下图所示,即便是外形不同的椅子,KeypointNet始终可以使用相同的关键点,而且它们不会随视角变化发生变动,也能预测被遮挡的部分(椅子后腿)。
KeypointNet有N个头,因此可以提取N个关键点,同一个头在提取关键点时主要参考语义是否一致。
和完全监督学习方法相比,这种做法没有事先定义关键点位置,相反地,它专注于训练时的相对姿态估计,也就是对于同一目标的两个2D不同视图(变换T),找到图一中的关键点P1和它在图二中的对应关键点P2,用这两个点构建3D关键点列表。如下图所示:
在训练期间,同一对象的两个视图被作为KeypointNet的输入,已知视图变换T=(R, t),P1和P2是一致关键点,可以从中提取3D关键点
把两个关键点合并成一个3D关键点的目标函数是O(P1, P2),有了它,我们就能可以从图像到关键点列表的参数映射。这个目标函数由两大关键构成:
多视图一致性损失,用于在已知转换T的情况下,衡量两组点之间的差异。
相对姿态估计损失,用于惩罚真实旋转R和P1、P2校正的旋转Rˆ之间的差异。
实验证明,它们能帮模型发现重要的关键点,其中有一些甚至和人工特别手动标注的点一致。需要注意的是,这些具有语义意义的关键点不会被直接优化,可以它们对于下游任务可能不是最佳的。
由于论文的阅读体验不是很好,具体计算细节,感兴趣的读者可以去原文查看。
论文地址:arxiv.org/pdf/1807.03146.pdf